package router

import (
	"github.com/gin-gonic/gin"
	controller "go-gin-api/app/controller/websocket"
	"go-gin-api/core/config"
	"go-gin-api/core/log"
	"go-gin-api/core/middleware"
)

func WsRouter() {
	// 入参
	gin.SetMode(config.GetString("app.model")) // 运行模式。生产 release /开发 debug 环境。
	//r := gin.Default() // 路由初始化。都可以，Default() 默认加了两个中间件，日志和？？
	r := gin.Default()     // 路由初始化。都可以，没有Default() 默认加的日志等两个中间件
	r.Use(log.GinLogger()) // 引进自定义日志中间件
	//r.Use(gin.Recovery()) gin自带的处理异常
	r.Use(log.GinRecovery(true)) // gin.Default()本来默认有的中间件，因为自定义了gin.New(),所以补上。Recovery 中间件会恢复任何恐慌(panics) 如果存在恐慌，中间件将会写入500。

	r.Use(middleware.Cors()) // 如需跨域可以打开
	//定义 ws的连接方法
	wsController := controller.WsController{Model: "聊天室模块"}
	r.GET("/ws", middleware.JwtMiddleware(), wsController.WsHandler)

	r.Run(config.GetString("app.ws.port")) // 跑起来。也可以func InitRouter() *gin.Engine 返回一个*gin.Engine,在main里面调用
	//return
}
